home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Contributed / SpriteWorld / SpriteWorld Files / Headers / Tiling.h < prev   
Encoding:
Text File  |  2000-10-06  |  5.6 KB  |  262 lines  |  [TEXT/CWIE]

  1. ///--------------------------------------------------------------------------------------
  2. //    Tiling.h
  3. //
  4. //    By: Vern Jensen 10/27/95
  5. ///--------------------------------------------------------------------------------------
  6.  
  7.  
  8. #ifndef __TILING__
  9. #define __TILING__
  10.  
  11. #ifndef __SOUND__
  12. #include <Sound.h>
  13. #endif
  14.  
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18.  
  19. #if PRAGMA_ALIGN_SUPPORTED
  20. #pragma options align=mac68k
  21. #endif
  22.  
  23.  
  24. ///--------------------------------------------------------------------------------------
  25. //    Tiling definitions
  26. ///--------------------------------------------------------------------------------------
  27.  
  28. #define    kMaskIsPartialMask                true
  29. #define kMaskIsNotPartialMask            false
  30.  
  31.  
  32. typedef enum    // Used to SWCheckSpriteWithTiles
  33. {
  34.     kSWEntireSprite = 0,
  35.     kSWTopSide,
  36.     kSWRightSide,
  37.     kSWBottomSide,
  38.     kSWLeftSide
  39. } SWTileSearchType;
  40.  
  41. #define    kNumTileLayers        10
  42.  
  43.  
  44. typedef short** TileMapPtr;
  45.  
  46. typedef struct TileMapStruct
  47. {
  48.     short        numRows;
  49.     short        numCols;
  50.     TileMapPtr    tileMap;
  51.     Handle        tileMapDataH;
  52.     Handle        arrayOfPointersH;
  53.     Boolean        isLocked;
  54. } TileMapStruct, *TileMapStructPtr;
  55.  
  56. typedef SW_FUNC void (*TileChangeProcPtr)(
  57.     SpriteWorldPtr spriteWorldP);
  58.  
  59. typedef SW_FUNC void (*TileRectDrawProcPtr)(
  60.     SpriteWorldPtr    spriteWorldP,
  61.     Rect*            updateRectP,
  62.     Boolean            optimizingOn);
  63.  
  64.  
  65. ///--------------------------------------------------------------------------------------
  66. //    tile function prototypes
  67. ///--------------------------------------------------------------------------------------
  68.  
  69. SW_FUNC OSErr SWInitTiling(
  70.     SpriteWorldPtr    spriteWorldP,
  71.     short             tileHeight,
  72.     short            tileWidth,
  73.     short            maxNumTiles);
  74.  
  75. SW_FUNC void SWExitTiling(
  76.     SpriteWorldPtr    spriteWorldP);
  77.  
  78. SW_FUNC OSErr SWInitTilingCache(
  79.     SpriteWorldPtr    spriteWorldP);
  80.  
  81. SW_FUNC OSErr SWCreateTileMap(
  82.     TileMapStructPtr    *tileMapStructPP,
  83.     short                 numTileMapRows,
  84.     short                numTileMapCols);
  85.  
  86. SW_FUNC void SWDisposeTileMap(
  87.     TileMapStructPtr    *tileMapStructPP);
  88.  
  89. SW_FUNC void SWLockTileMap(
  90.     TileMapStructPtr    tileMapStructP);
  91.  
  92. SW_FUNC void SWUnlockTileMap(
  93.     TileMapStructPtr    tileMapStructP);
  94.  
  95. SW_FUNC void SWInstallTileMap(
  96.     SpriteWorldPtr        spriteWorldP,
  97.     TileMapStructPtr    tileMapStructP,
  98.     short                tileLayer);
  99.  
  100. SW_FUNC OSErr SWLoadTileMap(
  101.     ResType                resType,
  102.     TileMapStructPtr    *tileMapStructPP,
  103.     short                 resourceID);
  104.  
  105. SW_FUNC OSErr SWSaveTileMap(
  106.     ResType                resType,
  107.     TileMapStructPtr    tileMapStructP,
  108.     short                 destResID);
  109.  
  110. SW_FUNC OSErr SWResizeTileMap(
  111.     TileMapStructPtr    tileMapStructP,
  112.     short                 numNewTileMapRows,
  113.     short                numNewTileMapCols);
  114.  
  115. SW_FUNC OSErr SWLoadTileFromCicnResource(
  116.     SpriteWorldPtr    spriteWorldP, 
  117.     short            tileID,
  118.     short            cicnID, 
  119.     MaskType        maskType,
  120.     Boolean            maskIsPartialMask);
  121.  
  122. SW_FUNC OSErr SWLoadTilesFromPictResource(
  123.     SpriteWorldPtr    spriteWorldP, 
  124.     short            startTileID,
  125.     short            endTileID, 
  126.     short            pictResID, 
  127.     short            maskResID,
  128.     MaskType        maskType,
  129.     Boolean            maskIsPartialMask,
  130.     short            horizBorderWidth,
  131.     short            vertBorderHeight);
  132.  
  133. SW_FUNC void SWDisposeTile(
  134.     SpriteWorldPtr    spriteWorldP,
  135.     short            tileID);
  136.  
  137. SW_FUNC void SWLockTiles(
  138.     SpriteWorldPtr    spriteWorldP);
  139.  
  140. SW_FUNC void SWUnlockTiles(
  141.     SpriteWorldPtr    spriteWorldP);
  142.  
  143. SW_FUNC OSErr SWCreateExtraBackFrame(
  144.     SpriteWorldPtr    spriteWorldP,
  145.     Rect            *frameRect);
  146.  
  147. SW_FUNC void SWDisposeExtraBackFrame(
  148.     SpriteWorldPtr    spriteWorldP);
  149.  
  150. SW_FUNC OSErr SWSetPortToExtraBackFrame(
  151.     SpriteWorldPtr    spriteWorldP);
  152.  
  153. SW_FUNC void SWSetTilingOn(
  154.     SpriteWorldPtr    spriteWorldP,
  155.     Boolean            tilingIsOn);
  156.  
  157. SW_FUNC OSErr SWChangeTileSize(
  158.     SpriteWorldPtr    spriteWorldP,
  159.     short             tileHeight,
  160.     short            tileWidth);
  161.  
  162. SW_FUNC void SWSetSpriteLayerUnderTileLayer(
  163.     SpriteLayerPtr    spriteLayerP,
  164.     short            tileLayer);
  165.  
  166. SW_FUNC OSErr SWSetTileMaskDrawProc(
  167.     SpriteWorldPtr    spriteWorldP,
  168.     DrawProcPtr        drawProc);
  169.  
  170. SW_FUNC OSErr SWSetPartialMaskDrawProc(
  171.     SpriteWorldPtr    spriteWorldP,
  172.     DrawProcPtr        drawProc);
  173.  
  174. SW_FUNC void SWSetTileChangeProc(
  175.     SpriteWorldPtr        spriteWorldP,
  176.     TileChangeProcPtr    tileChangeProc);
  177.  
  178. SW_FUNC void SWSetTileMaskSolidMode(
  179.     SpriteWorldPtr        spriteWorldP,
  180.     short                tileID,
  181.     Boolean                isSolid);
  182.  
  183.  
  184. SW_FUNC OSErr SWDrawTilesInBackground(
  185.     SpriteWorldPtr    spriteWorldP);
  186.  
  187. SW_FUNC void SWDrawTile(
  188.     SpriteWorldPtr    spriteWorldP,
  189.     short            dstTileLayer,
  190.     short            tileRow,
  191.     short            tileCol,
  192.     short            tileID);
  193.  
  194. SW_FUNC void SWDrawTilesInRect(
  195.     SpriteWorldPtr    spriteWorldP,
  196.     Rect*            updateRectP,
  197.     Boolean            faster);
  198.  
  199. SW_FUNC void SWDrawTileLayersInRect(
  200.     SpriteWorldPtr    spriteWorldP,
  201.     Rect*            updateRectP,
  202.     Boolean            optimizingOn);
  203.  
  204. SW_FUNC void SWDrawTilesAboveSprite(
  205.     SpriteWorldPtr    spriteWorldP,
  206.     Rect*            updateRectP,
  207.     short            startLayer);
  208.  
  209. SW_FUNC void SWResetTilingCache(
  210.     SpriteWorldPtr    spriteWorldP);
  211.  
  212. SW_FUNC void SWAddChangedRect(
  213.     SpriteWorldPtr    spriteWorldP, 
  214.     Rect            *changedRectP);
  215.  
  216. SW_FUNC void SWChangeTileImage(
  217.     SpriteWorldPtr    spriteWorldP,
  218.     short            tileID,
  219.     short            currentFrame);
  220.  
  221. SW_FUNC void SWUpdateTileOnScreen(
  222.     SpriteWorldPtr    spriteWorldP,
  223.     short            tileID);
  224.  
  225. SW_FUNC void SWResetCurrentTileImages(
  226.     SpriteWorldPtr    spriteWorldP);
  227.  
  228. SW_FUNC short SWReturnTileUnderPixel(
  229.     SpriteWorldPtr    spriteWorldP,
  230.     short    tileLayer,
  231.     short    pixelCol,
  232.     short    pixelRow);
  233.  
  234. SW_FUNC Boolean SWCheckSpriteWithTiles(
  235.     SpriteWorldPtr    spriteWorldP,
  236.     SpritePtr        srcSpriteP, 
  237.     SWTileSearchType searchType,
  238.     Rect            *insetRectP,
  239.     short            startTileLayer,
  240.     short            endTileLayer,
  241.     short            firstTileID,
  242.     short            lastTileID,
  243.     Boolean            fixPosition);
  244.     
  245. SW_FUNC void SWWrapRectToWorkArea(
  246.     SpriteWorldPtr    spriteWorldP,
  247.     Rect*            dstRectP);
  248.  
  249. SW_FUNC void SWWrapRectFromExtraBackFrame(
  250.     SpriteWorldPtr    spriteWorldP,
  251.     Rect            *dstRectP);
  252.  
  253.  
  254. #if PRAGMA_ALIGN_SUPPORTED
  255. #pragma options align=reset
  256. #endif
  257.  
  258. #ifdef __cplusplus
  259. }
  260. #endif
  261.  
  262. #endif /* __TILING__ */